<?php
header('Content-Type:application/json;charset=utf-8');
//大标题名称
$title='企业财务分析系统';
//获取最大年份
$year=arrdir("计算");
@$year=max($year);

//排序
function px($a,$b){
    if( $a<$b ){
        return -1;
    }
    if( $a>$b ){
        return 1;
    }
}

//获取分类的指标
if(file_exists("名称/分类/101")){
    $arr=arrdir("分类/101/指标");
    usort($arr,'px');
    //$sz=array();
    $biaoge=array();
    $bing=array();
    if(count($arr) != 0){
        //获取总值
        $zvalue=0;
        for($i=0;$i<count($arr);$i++){
            //获取指标的值
            $zgs=file_get_contents("分类/101/指标/$arr[$i]/公式");
            @$zvalue=$zvalue+jisuan($zgs,$year);
    
        }
        for($i=0;$i<count($arr);$i++){
            //获取指标的名字
            $zb=file_get_contents("名称/指标/$arr[$i]");
            //获取指标的值
            $gs=file_get_contents("分类/101/指标/$arr[$i]/公式");
			//php7.4以后必须提前定义变量
			$js='';
            @$value=jisuan($gs,$year);
            //上一期指标值
            $sqtime=$year-1;
            if( file_exists("时间/$sqtime") ){
                
                @$sqvalue=jisuan($gs,$sqtime);
            }else{
                $sqvalue="0";
                $js="没有上一期";
            }
            //计算百分比
            $shu=sprintf("%.2f",0);
            if($sqvalue!="0"){
               $shu=($value-$sqvalue)/$sqvalue*100;
               $shu=sprintf("%.2f",$shu);
            }
            if(strpos($shu,'-')!==false){
                $bj='降低';
                $shu=str_replace('-','',$shu);
            }else{
                $bj='增长';
            }
            if($shu=='0.00' && $js!='没有上一期'){
                $bj='无变化';
                $js='无变化';
            }
            if($bj!='无变化' && $js!='没有上一期'){
                $js=$bj.$shu.'%';
            }
            $biaoge1=['zb'=>$zb,'value'=>$value,'js'=>$js];
            array_push($biaoge,$biaoge1);
            //饼的数据
            @$percent=$value/$zvalue;
            $bing1=['item'=>$zb,'count'=>$value,'percent'=>$percent];
            array_push($bing,$bing1);
        }
    }
    
    $sz=['biaoge'=>$biaoge,'bing'=>$bing,'year'=>$year,'title'=>$title];
    $arr=array('msg'=>'成功','content'=>$sz);
    echo json_encode($arr,JSON_UNESCAPED_UNICODE);
}else{
    $arr=array('msg'=>'失败','content'=>'该分类ID不存在！');
    echo json_encode($arr,JSON_UNESCAPED_UNICODE);
}



//浏览目录并删除数组中的..和.
function arrdir($dir){
    if( is_dir($dir) ){
        if( $arr=scandir($dir) ){
            $sz=array();
            for($i=0;$i<count($arr);$i++){
                if($arr[$i]!='..' && $arr[$i]!='.'){
                    array_push($sz,$arr[$i]);
                }
            }
            return $sz;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

//把字符串转为计算公式
function jisuan($gs,$time){
    //判断公式有几个值
    preg_match_all('%[^-()+*/\d]+%', $gs, $result, PREG_PATTERN_ORDER);
    $result = $result[0];
    #$cd = count($result);
    for($i=0;$i<count($result);$i++){
        $z1=0;
        if( file_exists("时间/$time/$result[$i]") ){
            $z1=file_get_contents("时间/$time/$result[$i]");
        }
        $gs=str_replace($result[$i],$z1,$gs);
    }
    //计算公式
    $num=eval("return $gs;");
    $num=sprintf("%.2f",$num);
    return $num;
}
